FROM csap/jdk:11
VOLUME /tmp
ADD csap-framework-apidoc-admin/target/csap-framework-apidoc-admin.jar /app.jar
ADD nginx-1.17.1 /csap/nginx
ADD node-v10.16.3-linux-x64 /csap/node
ADD apidoc-template /csap/apidoc-template
ADD nginx.sh /csap/nginx.sh
RUN sh -c 'touch /app.jar'
ENV JVM_OPTS=""
ENV JAVA_OPTS=""
## nginx 相关
# 加上“rpm --rebuilddb &&”是为了防止数据库损坏而影响yum安装。
# 注意，比较保险的做法是有多少个yum命令，就加多少个“rpm --rebuilddb &&”在yum前面。
# 另外yum install一定要安装的是pcre，zlib，net-tools，make，gcc，wget，tar及其相关内容
RUN rpm --rebuilddb && yum install -y autoconf automake make wget proc-devel net-tools zlib zlib-devel make gcc  g++ openssl-devel pcre pcre-devel tar
# 在线获取nginx压缩包（也可以在本地系统（centos）里先下载压缩包，再ADD命令将包加入到基础镜像/usr/src目录中）
# 解压到当前目录
WORKDIR /csap/nginx
# 配置nginx
RUN ./configure --prefix=/usr/local/nginx && make && make install
## node&npm
WORKDIR /csap/node/bin
#WORKDIR node
RUN ln -s node /usr/local/bin/node
RUN ln -s npm /usr/local/bin/npm
ENV NODE_HOME=/csap/node
ENV PATH=$NODE_HOME/bin:$PATH
ENV APIDOC_HOME=/csap/apidoc-template/
ENV APIDOC_HTML_PATH=/usr/local/nginx/html
#ENV NODE_OPTIONS=--max_old_space_size=4096
WORKDIR /csap/apidoc-template
RUN sh install.sh
WORKDIR /csap
EXPOSE 80 8080
ENTRYPOINT [ "sh", "-c", "java $JVM_OPTS $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -XX:NativeMemoryTracking=summary -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/heap -verbose:gc -Xloggc:gc.log -XX:+PrintGCDetails -jar /app.jar"]
